#include<bits/stdc++.h>
using namespace std;
int t,d[100005],u[100005],a[100005],p[100005];
int n,m,l,v;
int main(){
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin>>t;
    int ans=0,f=0;
    for(int i=1;i<=t;i++){
        set<int> sets;
        cin>>n>>m>>l>>v;
        for(int i=1;i<=n;i++){
            cin>>d[i]>>u[i]>>a[i];
        }
        for(int i=1;i<=m;i++){
            cin>>p[i];
        }
        for(int i=1;i<=n;i++){
            f=0;
            if(a[i]==0){
                if(u[i]>v){
                    if(d[i]<=p[m+1]){
                        for(int i=1;i<=m;i++){
                            if(u[i]<d[i]){
                                sets.insert(i);
                                if(f==0)
                                    ans++;
                                f=1;
                            }
                        }
                    }
                }
            }
            else{
                int through=d[i]+((v*v)-(u[i]*u[i]))/(2*a[i]);
                if(a[i]>0){
                    f=0;
                    for(int i=1;i<=m;i++){
                        if(u[i]<d[i]){
                            sets.insert(i);
                            if(f==0)
                                ans++;
                            f=1;
                        }
                    }
                }else{
                    f=0;
                    for(int i=1;i<=m;i++){
                        if(u[i]>d[i]){
                            sets.insert(i);
                            if(f==0)
                                ans++;
                            f=1;
                        }
                    }
                }
            }
        }
        cout<<ans<<" "<<sets.size()<<endl;
        f=0,ans=0;
    }
    return 0;
}
